home *** CD-ROM | disk | FTP | other *** search
- Path: news.nyu.edu!schonberg!dewar
- From: dewar@cs.nyu.edu (Robert Dewar)
- Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++,comp.edu
- Subject: Re: ANSI C and POSIX (was Re: C/C++ knocks the crap out of Ada)
- Date: 10 Apr 1996 07:42:08 -0400
- Organization: Courant Institute of Mathematical Sciences
- Message-ID: <dewar.829136485@schonberg>
- References: <JSA.96Feb16135027@organon.com> <dewar.829048603@schonberg> <4kets3$ic0@news-s01.ny.us.ibm.net> <dewar.829101156@schonberg> <4kfbm9$ea2@solutions.solon.com>
- NNTP-Posting-Host: schonberg.cs.nyu.edu
- X-Newsreader: NN version 6.5.0 (NOV)
-
- Peter wrote
-
- >I suspect what you're seeing is an obvious bug in their specs. As
- >written, the spec on at least one system also guarantees not to give
- >a fault for
- > char buf;
- > read(fd, &buf, 1000);
- >even if there are 1000 bytes available, because the check is only specified
- >for whether the pointer given points to a valid object.
-
- No, that's incorrect. All versions of the spec that I have read are
- quite clear that this call would cause undefined overwriting of data.
- I say clear here in an informal sense, since these are of course
- informal specs, but no one could read any of these specs and have
- any question but that the above has undefined behavior if 1000 bytes
- are read. I think Peter is misreading the spec here, deliberately
- or otherwise.
-
- >I doubt it. I would bet that whoever wrote it did not give adequate
- >consideration to it, and did not check the spec in any detail.
-
- You would be quite wrong, and you would lose your bet. Some programmers
- are very aware of specifications as they program! The actual thought
- process here was very definitely a concious observation that the last
- call was "safe" because it could not overwrite data, and an assumption
- that overwriting data was the only undefined semantics involved.
-
-
-